package com.quanthium;

public class DeviceShadowResp {
    private String produce_id;
    private String device_id;
    private State state;
    private Metadata metadata;
    private long timestamp;
    private int version;

    // Getters and Setters
    public String getProduce_id() {
        return produce_id;
    }

    public void setProduce_id(String produce_id) {
        this.produce_id = produce_id;
    }

    public String getDevice_id() {
        return device_id;
    }

    public void setDevice_id(String device_id) {
        this.device_id = device_id;
    }

    public State getState() {
        return state;
    }

    public void setState(State state) {
        this.state = state;
    }

    public Metadata getMetadata() {
        return metadata;
    }

    public void setMetadata(Metadata metadata) {
        this.metadata = metadata;
    }

    public long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(long timestamp) {
        this.timestamp = timestamp;
    }

    public int getVersion() {
        return version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

    public static class State {
        private Desired desired;
        private Reported reported;

        // Getters and Setters
        public Desired getDesired() {
            return desired;
        }

        public void setDesired(Desired desired) {
            this.desired = desired;
        }

        public Reported getReported() {
            return reported;
        }

        public void setReported(Reported reported) {
            this.reported = reported;
        }
    }

    public static class Desired {
        private String color;
        private String[] sequence;

        // Getters and Setters
        public String getColor() {
            return color;
        }

        public void setColor(String color) {
            this.color = color;
        }

        public String[] getSequence() {
            return sequence;
        }

        public void setSequence(String[] sequence) {
            this.sequence = sequence;
        }
    }

    public static class Reported {
        private String color;

        // Getters and Setters
        public String getColor() {
            return color;
        }

        public void setColor(String color) {
            this.color = color;
        }
    }

    public static class Metadata {
        private DesiredMetadata desired;
        private ReportedMetadata reported;

        // Getters and Setters
        public DesiredMetadata getDesired() {
            return desired;
        }

        public void setDesired(DesiredMetadata desired) {
            this.desired = desired;
        }

        public ReportedMetadata getReported() {
            return reported;
        }

        public void setReported(ReportedMetadata reported) {
            this.reported = reported;
        }
    }

    public static class DesiredMetadata {
        private Timestamp color;
        private Timestamp sequence;

        // Getters and Setters
        public Timestamp getColor() {
            return color;
        }

        public void setColor(Timestamp color) {
            this.color = color;
        }

        public Timestamp getSequence() {
            return sequence;
        }

        public void setSequence(Timestamp sequence) {
            this.sequence = sequence;
        }
    }

    public static class ReportedMetadata {
        private Timestamp color;

        // Getters and Setters
        public Timestamp getColor() {
            return color;
        }

        public void setColor(Timestamp color) {
            this.color = color;
        }
    }

    public static class Timestamp {
        private long timestamp;

        // Getters and Setters
        public long getTimestamp() {
            return timestamp;
        }

        public void setTimestamp(long timestamp) {
            this.timestamp = timestamp;
        }
    }
}